package everest3.crypto;

//~--- JDK imports ------------------------------------------------------------

import java.security.MessageDigest;

/**
 * Clase que permite hacer la encriptacion de una cadena por medio del algoritmo MD5
 */
public class MD5 {

    /**
     * Metodo que implementa el algoritmo MD5
     * @param message cadena que se desea encriptar
     * @return Cadena encriptada, la cual equivale a un numero hexadecimal de 128 bits
     */
    public static String MD5(java.lang.String message) {
        String md5string = "";

        try {
            MessageDigest md = MessageDigest.getInstance("MD5");

            md5string = "";

            StringBuffer sb    = new StringBuffer();
            byte         buf[] = message.getBytes();
            byte[]       md5   = md.digest(buf);

            for (int i = 0; i < md5.length; i++) {
                String tmpStr = "0" + Integer.toHexString((0xff & md5[i]));

                sb.append(tmpStr.substring(tmpStr.length() - 2));
            }

            md5string = sb.toString();
        } catch (Exception e) {
            System.out.println(e);
        }

        return md5string;
    }
}


//~ Formatted by Jindent --- http://www.jindent.com
